import axios from 'axios'

var serverCode = {
  sucess: '0000',
  fail: 1,
  exception: 2,
  sessionTimeOut : 4
}

axios.defaults.timeout = 50000; //响应时间
//axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; //配置请求头
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; //"text/plain; charset=UTF-8";
axios.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest';

axios.defaults.baseURL = '/'; //配置接口地址
//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
  //在发送请求之前做某件事
  if (config.method === 'post') {

  }
  return config;
}, (error) => {
  return Promise.reject(error);
});
axios.interceptors.response.use((res) => {
  //对响应数据做些事
  if (typeof res.data === 'string') {
    // 对respondType是text进行处理  此场景是需要对json中的数字进行字符串化处理，防止越界
    res.data = JSON.parse(res.data);
  }
  if (res.data.errType !== serverCode.sucess) {
    if(res.data.errType == serverCode.sessionTimeOut){
      // console.log('timeout')
      return Promise.reject(res);
    }else{
      // console.log('errorInfo: ' + res.data.msg);
      return Promise.reject(res);
    }
  }
  return res.data;
}, (error) => {
  //debugger;
  switch (error.response.status) {
    case 404:
      //Toast('无法连接服务器');
      console.log.error('无法连接服务器');
      break;
    case 500:
      //Toast("服务器响应异常");
      console.log.error('服务器响应异常');
      break;
    case 401:
      //Toast("无权限访问该资源");
      console.log.error('您无权限访问该资源');
      break;
    default:
      //Toast("未知错误");
      console.log.error('未知错误');
      break;
  }
  return Promise.reject(error);
});
